GSP-002 Getting Started with Cloud Shell & gcloud

2017 9 23일 토요일

오전 5:24

링크: https://google.qwiklabs.com/focuses/5319

 

Google Cloud Shell

 

- 계정당 하나씩 생기며 아래와 같은 특성을 지닌다.

 

- 데비안 OS

- 5GB 홈디렉토리           

- 왠만한 기본 설치는 다 되어 있음

f517a222b0b2e1c4.png

 

 

어떤 컴퓨터에건 gcloud SDK 가 깔려있으면 클라우드상의 (본인이 권한을 가진) GCP Project에 접근이 가능한거다

- GCP 계정당 하나씩 주는 Google Cloud Shell 이라고 하는 VM 이든

- GCP 위에 만든 VM, 또는 AWS 위에 만든 VM이든

- 호스팅한 서버이든

- 로컬의 내 컴퓨터이든 상관없다

 

막간 Region / Zone

region

us-west1

us-central1

us-east1

europe-west1

asia-east1

zone

그 뒤에 붙는

-a

-b

-c

-d

-f

d5e7e31d2902346c.png

 

 

Persistant Disk VM에 붙일려면 둘 다 같은 zone에 있어야 한다.

- Persistant Disk 만 생성한다면 일종의 외장하드라고 생각해보면 될듯

Compute Engine 
VM instances 
Instance groups 
Instance templates 
Snapshots 
Images 
Committed use discounts 
Disks 
Filter disks 
Name A 
disk-I 
jhs-vml 
mydiskl 
test-pd 
g CREATE DISK 
Type 
Standard oersistent disk 
Standard persistent disk 
Standard oersistent disk 
Standard persistent disk 
C REFRESH 
200 
10 
10 
200 
Zone 
us-centralV: 
us-centrall-c 
us-centralV: 
asia-northeastl-c 
In use by 
jhs-vml

EDIT 
Q 
Compute Engine 
VM instances 
Instance groups 
Instance templates 
Disks 
Snapshots 
Images 
Committed use discounts 
VM instance details 
Firewalls 
C] Allow 
C] Allow HTTPS 
Network tags 
None 
Boot disk and local disks 
Name 
jhs-vml 
Delete boot disk when instance is cleæted 
e) RESET 
size (GB) 
CLONE 
• STOP 
Type 
Standard persistent disk 
DELETE 
Mode 
Boot, read/write

 

 

참고. VM에서 gcloud components update 같은건 실행안된다. 다른 방법을 까는 걸 알려준다.

- 심지어는 윈도우 10 bash shell (=우분투) 도 일종의 VM이 되는 건지 안되네요

nicenook@youngmin-PC: S gctoud components update 
ERROR: (gcloud. conponents.update) 
ou cannot perform this action because the Cloud SDK cooponent manager 
is disabled for this installation. You can run the following cognand 
to achieve the same result for this installation: 
sudo apt—get update sudo apt—get —only—upgrade instati kuöectt 
ine—python

 

gcloud

 

- GCP를 위한 강력한 CLI 이다.

gcloud auth list

권한 확인

gcloud config list project

core/project, (아마도) 핵심이 되는 프로젝트를 보여준다.

gcloud config set project <PROJECT_ID>

core/project가 잘못되어 있거나, 바꾸려면 왼쪽처럼 하면 된다.

 

CLI 써보자

 

gcloud --help

gcloud 도움말

gcloud config --help

config 에 대한 도움말

gcloud help config

config 에 대한 도움말

 

home 디렉토리를 써보자

 

cd $HOME 또는 cd ~

사용자의 홈디렉토리로 갈 수 있다.

vim ./.bashrc .bashrc

홈디렉토리의 .bashrc 파일을 편집하면 여러 유용한 설정을 변경할 수 있다

 

gcloud 명령을 사용하여 설정을 확인해보자

 

gcloud config list

환경설정을 확인

gcloud config list --all

좀더 자세한 환경설정을 확인

 

gsutil 이용해서 Google Cloud Storage 관리해보자

gsutil mb gs://my-bucket-555

현재 core/project GCS my-bucket-555 라는 버켓을 생성하라

- mb make bucket 을 의미하는 것이겠지?

- 똑같이 타이핑하면 에러가 난다. Cloud Storage 라는 namespace 내에서는 unique 해야 하기 때문이다. = 전세계에 하나

Bucket name considerations 
Bucket names reside in a single Cloud Storage namespace, which means that every bucket name must be unique. If you 
try to create a bucket with a name that is already assigned to an existing bucket, Cloud Storage responds with an error 
message. However, once you delete a bucket, its name can be reused by you or another user when creating a new 
bucket.

 

gsutil cp test.dat gs://my-bucket-555

만든 버켓에 test.dat 라는 파일을 복사해라

- 물론 test.dat 라는 파일은 없으므로, .bashrc 파일을 copy 해보았고 동작했다.

- 웹콘솔에서 GCS 로 들어가보면 해당 버켓과 파일이 보인다.

 

참고 "-m" 옵션

Causes supported o rations act ch. act set, cp. 'v, m, rsync, 
and setmeta) run in parallel. This can significantly improve 
performance if you are per ormlng operations on a targe number of 
files over a reasonably fast network connection. 
suti rforns the s cified ration using a combination of 
multi—threading and multi—processing, using a number of threads 
a processors 
para and 
parallel _ process_count values set in the Soto configuration 
file. You might want to experiment with these values, as the 
best values can vary based on a number of factors, including 
network speed, number of CPUs, and available memory. 
Using the —m option may make vour performance worse if vou 
are usino a slower network, such as the typical network speeds 
offered by non—business home network plans. It can also make 
your performance worse for cases that perform all operations 
locally (e.a.. asutil rsync. where both source and destination_ 
URLs are on the local disk), because it can "thrash" your locat 
disk. 
If a download or upload operation using parallel transfer fails 
before the entire transfer is co•nplete (e.g. failing after of 
1000 files have been transferred), you will need to 
entire transfer. 
Also, although most cognands Witt normally fait upon encountering 
an error when the —m flag is disabled, all cognands will 
continue to try all operations when —m is enabled with multiple 
threads or processes, and the number of failed operations (if any) 
Witt be reported at the end of the cognand's execution.

 

gsutil을 쓸때는 -m 옵션을 쓰는게 보통 좋다

- 병렬로 실행되어  멀티 쓰레드/프로세스이기 때문

- 네트웍이 넘 느릴때는 오히려 안좋을 수 있음

- 로컬에서만의 작업이라면 오히려 안좋을 수 있음

- 어짜피 로컬 디스크 = IO는 하난데!

 

-m 옵션으로 병렬 전송을 할 경우

- 중간에 실패하면 다시 처음부터 해야함…;;;

- 하지만 -m 옵션은 실패하면 성공할때까지 계속 시도!

 

googles 7410 
Creating gs: / 
ServiceException: 409 Bucket my—bucket—SS S already 
googles 7410 
Creating gs : / . 
ServiceException: 409 Bucket already 
d rwxr —x r —x 
. —$ gsutil mb gs://my 
exists . 
. —$ gsutil mb gs://my 
exists . 
google 87410 studenteqwiklabs—gcp 
-b012c7ea2c8b8186:- 
Creating gs . . . 
google 87410 studenteqwiklabs—gcp 
-b012c7ea2c8b8186:- 
gsutil mb gs://my 
Is —al 
total 
40 
d rwxr —x r 
—rw—r— 
—rw—r 
d rwxr —x r 
d rwxr —x r 
d rwxr —x r 
— rw—r 
-x 
-x 
-x 
-x 
s 
google87410 
root 
google87410 
google87410 
google87410 
google87410 
google87410 
google87410 
google87410 
google87410 
google87410 
s Cuden t 
studen t 
s Cuden t 
s Cuden t 
s Cuden t 
s Cuden t 
s Cuden t 
s Cuden t 
s Cuden t 
s Cuden C 
google87410 
root 
google87410 
google87410 
google87410 
google87410 
google87410 
google87410 
google87410 
google87410 
google87410 
s Cuden t 
student 
s Cuden t 
s Cuden t 
s Cuden t 
s Cuden t 
s Cuden t 
s Cuden t 
s Cuden t 
s Cuden t 
4096 
4096 
466 
220 
3629 
4096 
4096 
4096 
675 
38 
650 
sep 
sep 
sep 
Nov 
sep 
sep 
sep 
sep 
Nov 
sep 
sep 
6 
6 
I rwxrwx rwx 
01 
01 
01 : 34 
2016 
01 
01 : 21 
01 : 31 
01 : 21 
2016 
01 
01 : 27 
—bu cke t —SS S 
—bu cke — 666 
-bucket-629023 
. bash history 
. bash logout 
. bashrc 
. config 
. gsutil 
. orlon 
. profile 
README -cloudshell . txt 
. viminfo 
gs : / / 
'google/ devshel I 'README— cloudshell . txt 
google87410 studenteqwiklabs—gcp 
-b012c7ea2c8b8186:-$ 
gsutil cp .bashrc 
Copying file: // . bashrc . 
/ [1 files] [ 3.5 KiB/ 3.5 KiB] 
Operation completed over I objects/ 3.5 KiB. 
google87410 —$

 

Google Cloud Platform 
Storage 
Browser 
Transfer 
Settings 
qwiklabs-gcp-b012c7ea& 
Browser 
Filter by prefix. 
Buckets / my-bucket-629023 
Name 
a bashrc 
UPLOAD FILES 
UPLOAD FOLDER 
D CREATE FOL 
Size 
3.54 KB 
Type 
application/octet-stream

 

이런 기능을 당장 어디에 쓸 수 있을까?

- 일단 떠오르는 건, Cloud Shell에 각종 공통된 설정파일들을 놓아두고 이것을 생성하는 VM 들마다 복사할 수 있겠다.

 

Microsoft OneNote 2016에서 작성